package maxLengthBetweenEqualCharacters;

import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;

public class Solution {
    public int maxLengthBetweenEqualCharacters(String s) {
        // 记录每个字符最最左边的位置和最右边的位置
//        int[][] map = new int[26][2];
//        for (int i = 0; i < map.length; i++) {
//            map[i][0] = -1;
//            map[i][1] = -1;
//        }
//        for (int i = 0; i < s.length(); i++) {
//            int c = s.charAt(i)-'a';
//            if(map[c][0] == -1)map[c][0] = i;
//            map[c][1] = i;
//        }
//        int ans = -1;
//        for (int i = 0; i < map.length; i++) {
//            if(map[i][0]!=-1){
//                ans = Math.max(ans,map[i][1]-map[i][0]-1);
//            }
//        }
//        return ans;

        int ans = -1;
        Map<Character,Integer> map = new HashMap<>();
        for (int i = 0; i < s.length(); i++) {
            if(map.containsKey(s.charAt(i))){
                ans = Math.max(ans,i-map.get(s.charAt(i))-1);
            } else {
                map.put(s.charAt(i),i);
            }
        }
        return ans;
    }
}
